(S_ISDIR): Define if not defined.
authorRichard M. Stallman <rms@gnu.org>
Fri, 21 Jan 1994 06:34:16 +0000 (06:34 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 21 Jan 1994 06:34:16 +0000 (06:34 +0000)
(file_p): Use S_ISDIR.

(search_magic_path): Fix logic testing for empty path element.

src/xrdb.c

index 4c80d05553602c4543a6d69dea834e2f1b1ec0b2..d3f22c91610c834ac668a155baf096b84876a216 100644 (file)
@@ -55,6 +55,10 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #define MAXPATHLEN     256
 #endif
 
+#if !defined(S_ISDIR) && defined(S_IFDIR)
+#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
+#endif
+
 extern char *getenv ();
 
 /* This does cause trouble on AIX.  I'm going to take the comment at
@@ -320,7 +324,7 @@ file_p (path)
 
   return (access (path, 4) == 0                        /* exists and is readable */
          && stat (path, &status) == 0          /* get the status */
-         && (status.st_mode & S_IFDIR) == 0);  /* not a directory */
+         && (S_ISDIR (status.st_mode)) == 0);  /* not a directory */
 }
 
 
@@ -339,23 +343,18 @@ search_magic_path (search_path, class, escaped_suffix, suffix)
       for (p = s; *p && *p != ':'; p++)
        ;
       
-      if (*p == ':' && *(p + 1) == ':')
+      if (p > s)
        {
-         char *path;
-
-         s = "%N%S";
-         path = magic_file_p (s, strlen (s), class, escaped_suffix, suffix);
+         char *path = magic_file_p (s, p - s, class, escaped_suffix, suffix);
          if (path)
            return path;
-
-         /* Skip the first colon.  */
-         p++;
-         continue;
        }
-
-      if (p > s)
+      else if (*p == ':')
        {
-         char *path = magic_file_p (s, p - s, class, escaped_suffix, suffix);
+         char *path;
+
+         s = "%N%S";
+         path = magic_file_p (s, strlen (s), class, escaped_suffix, suffix);
          if (path)
            return path;
        }